﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using modEscenario;
using modDatos; 
using modElenco.Nave;
using modElenco;
using modElenco.LoadGame;
using modLanGame;

namespace modGuionistas
{
   public static class SCGuionistas
        {
            public static void definirEscena(string acto)
            {
                switch (acto)
                {
                    case "EsperarJugadores":
                        //CrearRoom();
                        Testing();
                        break;

                    case "Jugar":
                        Jugar();
                        break;

                    case "Fin":
                        FinGame();
                        break;

                    case "Testing":
                        Testing();
                        break;
                }
            }


            private static void Testing()
            {
                _BlackGlobal.score =0;

                SCescenario.ClearActorOnStage();

                CNave Nave = new CNave();

                SCescenario.pushActoOnStage(Nave.returnName(), Nave);

                CBulletMng BulletMng = new CBulletMng();
                SCescenario.pushActoOnStage(BulletMng.returnName(), BulletMng);

                CAsteroideMng Asteroides = new CAsteroideMng();
                SCescenario.pushActoOnStage(Asteroides.returnName(), Asteroides);
            }

            #region Definicion de las escenas

            private static void CrearRoom()
            {
                SCescenario.ClearActorOnStage();
                CLoadGame LoadGame = new CLoadGame();
                SCescenario.pushActoOnStage(LoadGame.data.escenarioDatos.primarykey, LoadGame);
            }

            private static void FinGame()
            {
                SCescenario.ClearActorOnStage();
                CGameOver gameOver = new CGameOver();
                SCescenario.pushActoOnStage(gameOver.returnName(), gameOver);
            }

            private static void Jugar()
            {
                SCescenario.ClearActorOnStage();
                                                
                CNave Nave = new CNave();
                CNaveLan[] NaveLan = new CNaveLan[CCliente.data.cantJugadores];

                for (int i = 0; i < CCliente.data.cantJugadores; i++)
                {
                    if (i != CCliente.data.miID)
                    {
                        NaveLan[i] = new CNaveLan(i);
                        SCescenario.pushActoOnStage(NaveLan[i].data.escenarioDatos.primarykey, NaveLan[i]);
                    }
                }

                SCescenario.pushActoOnStage(Nave.returnName(), Nave);

                CBulletMng BulletMng = new CBulletMng();
                SCescenario.pushActoOnStage(BulletMng.returnName(), BulletMng);

               // CServ_WorkGame.hiloRedireccion.Start();
               // CCliente.hiloRecivir2.Start();
               // CCliente.hiloEnviar2.Start();
            }
            
            #endregion

        }

}
